const { Level } = require('level');
const path = require('path');

// 数据库路径
const dbPath = path.join(__dirname, '../../database');

// 创建LevelDB数据库实例
const db = new Level(dbPath, {
  keyEncoding: 'utf8',
  valueEncoding: 'json'
});

// 初始化数据库（创建必要的子数据库）
async function initializeDatabase() {
  // 确保数据库已打开
  if (db.status === 'opening' || db.status === 'open') {
    console.log('LevelDB already initialized');
    return;
  }
  
  try {
    await db.open();
    console.log('LevelDB initialized successfully');
  } catch (error) {
    console.error('Error initializing LevelDB:', error);
    throw error;
  }
}

// 导出数据库实例和初始化函数
module.exports = {
  db,
  initializeDatabase
};